#ifndef _CONFIGURATION_H_
#define _CONFIGURATION_H_

#include <iostream>
#include <vector>
#include <string>
#include "tinyxml.h"
#include "tinystr.h"
#include "Field.h"
#include "Anomaly.h"

class Configuration
{
public:
	Configuration() {}
	void setAddress(const std::string &address);
	void setPort(const char* port);
	void setInterface(const char *val);
	void setThreadCount(const char *val);
	const std::string &getAddress() const;
	unsigned short getPort();
	const std::string &getInterface() const;
	unsigned int getThreadCount() const;
	const std::vector<Field> &getFields() const;
	const std::vector<Anomaly> &getAnomalies() const;
	bool loadConfigurationFile(const char* ConfigurationFile);
	void printDocument();

private:
	std::string address;
	unsigned short port;
	unsigned int threadCount;
	std::string interface;
	std::vector<Field> fields;
	std::vector<Anomaly> anomalies;
};

#endif
